home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / cg.lha / cg / m2c / Makefile < prev    next >
Makefile  |  1992-11-24  |  6KB  |  369 lines

  1. BIN    = $(HOME)/bin
  2. LIB    = $(HOME)/lib
  3. OPT    = -O
  4. CC    = cc
  5.  
  6.                 # C library (reuse)
  7. REUSE    = ../../reuse/m2c
  8.  
  9.                 # C libraries
  10. CLIBS    = $(REUSE)/libreuse.a
  11.  
  12.                 # options for C compiler
  13. CFLAGS    = -w -I$(REUSE) $(OPT)
  14.  
  15. M2FLAGS    = -c -d../../reuse/src
  16.  
  17.  
  18. all    : cg
  19.  
  20. install:    cg cg.sh $(LIB)/cg
  21.     if test $(LIB) = $(BIN); then echo error: BIN = LIB; false; else true; fi
  22.     sed "s;LIB;$(LIB);g" < cg.sh > $(BIN)/cg
  23.     cp $(BIN)/cg $(BIN)/ag
  24.     cp $(BIN)/cg $(BIN)/ast
  25.     chmod a+rx $(BIN)/cg $(BIN)/ast $(BIN)/ag
  26.     install -c -m 755 gmdcpp $(BIN)
  27.     install -c -m 755 gmdupd $(BIN)
  28.     install -c -m 755 gmdrm $(BIN)
  29.     install -c -s -m 755 cg $(LIB)/cg
  30.     install -c -m 644 Scanner.Tab $(LIB)/cg
  31.     install -c -m 644 Parser.Tab $(LIB)/cg
  32.     install -c -m 644 TypeTab.c $(LIB)/cg
  33.     install -c -m 644 TypeTab.m $(LIB)/cg
  34.  
  35. # installation directories
  36.  
  37. $(LIB)/cg:    $(LIB)
  38.     sh -c "if test ! -d $(LIB)/cg; then mkdir $(LIB)/cg; else true; fi"
  39.  
  40. # swap all byte pairs of the files Scanner.Tab and Parser.Tab
  41.  
  42. bin.conv:
  43.     dd conv=swab < Scanner.Tab > .Scanner.Tab; mv .Scanner.Tab Scanner.Tab
  44.     dd conv=swab < Parser.Tab > .Parser.Tab; mv .Parser.Tab Parser.Tab
  45.  
  46. # SYSTEM_    = SYSTEM_.o
  47.  
  48. lint:
  49.     lint $(CFLAGS) *.c
  50.  
  51.  
  52. # HEAD
  53.  
  54. sources    : Dialog.h
  55. Dialog.h    : Tree.h
  56.  
  57. sources    : Dialog.c
  58. Dialog.o    : Dialog.c Dialog.h
  59. Dialog.o    : Tree.h
  60. Dialog.o    : Order.h
  61. Dialog.o    : Tree.h
  62.  
  63. sources    : Errors.h
  64. Errors.h    : Positions.h
  65.  
  66. sources    : Errors.c
  67. Errors.o    : Errors.c Errors.h
  68. Errors.o    : Positions.h
  69.  
  70. sources    : EvalC.h
  71. EvalC.h    : Tree.h
  72.  
  73. sources    : EvalC.c
  74. EvalC.o    : EvalC.c EvalC.h
  75. EvalC.o    : Tree.h
  76. EvalC.o    : TreeC1.h
  77. EvalC.o    : TreeC2.h
  78. EvalC.o    : EvalC3.h
  79. EvalC.o    : Tree.h
  80.  
  81. sources    : EvalC2.h
  82. EvalC2.h    : Tree.h
  83.  
  84. sources    : EvalC2.c
  85. EvalC2.o    : EvalC2.c EvalC2.h
  86. EvalC2.o    : Tree.h
  87. EvalC2.o    : TreeC2.h
  88. EvalC2.o    : EvalC.h
  89. EvalC2.o    : Tree.h
  90.  
  91. sources    : EvalC3.h
  92. EvalC3.h    : Tree.h
  93.  
  94. sources    : EvalC3.c
  95. EvalC3.o    : EvalC3.c EvalC3.h
  96. EvalC3.o    : Tree.h
  97. EvalC3.o    : TreeC1.h
  98. EvalC3.o    : TreeC2.h
  99. EvalC3.o    : EvalC.h
  100. EvalC3.o    : EvalC.h
  101. EvalC3.o    : Tree.h
  102.  
  103. sources    : EvalMod.h
  104. EvalMod.h    : Tree.h
  105.  
  106. sources    : EvalMod.c
  107. EvalMod.o    : EvalMod.c EvalMod.h
  108. EvalMod.o    : Tree.h
  109. EvalMod.o    : TreeMod1.h
  110. EvalMod.o    : TreeMod2.h
  111. EvalMod.o    : EvalMod3.h
  112. EvalMod.o    : Tree.h
  113.  
  114. sources    : EvalMod2.h
  115. EvalMod2.h    : Tree.h
  116.  
  117. sources    : EvalMod2.c
  118. EvalMod2.o    : EvalMod2.c EvalMod2.h
  119. EvalMod2.o    : Tree.h
  120. EvalMod2.o    : TreeMod2.h
  121. EvalMod2.o    : EvalMod.h
  122. EvalMod2.o    : Tree.h
  123.  
  124. sources    : EvalMod3.h
  125. EvalMod3.h    : Tree.h
  126.  
  127. sources    : EvalMod3.c
  128. EvalMod3.o    : EvalMod3.c EvalMod3.h
  129. EvalMod3.o    : Tree.h
  130. EvalMod3.o    : TreeMod1.h
  131. EvalMod3.o    : TreeMod2.h
  132. EvalMod3.o    : EvalMod.h
  133. EvalMod3.o    : EvalMod.h
  134. EvalMod3.o    : Tree.h
  135.  
  136. sources    : GramC.h
  137. GramC.h    : Tree.h
  138.  
  139. sources    : GramC.c
  140. GramC.o    : GramC.c GramC.h
  141. GramC.o    : Tree.h
  142. GramC.o    : TreeC2.h
  143. GramC.o    : Tree.h
  144.  
  145. sources    : GramMod.h
  146. GramMod.h    : Tree.h
  147.  
  148. sources    : GramMod.c
  149. GramMod.o    : GramMod.c GramMod.h
  150. GramMod.o    : Tree.h
  151. GramMod.o    : TreeMod2.h
  152. GramMod.o    : Tree.h
  153.  
  154. sources    : GramYacc.h
  155. GramYacc.h    : Tree.h
  156.  
  157. sources    : GramYacc.c
  158. GramYacc.o    : GramYacc.c GramYacc.h
  159. GramYacc.o    : Tree.h
  160. GramYacc.o    : TreeC2.h
  161. GramYacc.o    : Tree.h
  162.  
  163. sources    : Optimize.h
  164. Optimize.h    : Tree.h
  165.  
  166. sources    : Optimize.c
  167. Optimize.o    : Optimize.c Optimize.h
  168. Optimize.o    : Tree.h
  169. Optimize.o    : Tree.h
  170. Optimize.o    : Order.h
  171.  
  172. sources    : Order.h
  173. Order.h    : Tree.h
  174.  
  175. sources    : Order.c
  176. Order.o    : Order.c Order.h
  177. Order.o    : Tree.h
  178. Order.o    : Queue.h
  179. Order.o    : Tree.h
  180. Order.o    : Optimize.h
  181. Order.o    : Queue.h
  182. Order.o    : Errors.h
  183.  
  184. sources    : Parser.h
  185.  
  186. sources    : Parser.c
  187. Parser.o    : Parser.c Parser.h
  188. Parser.o    : Scanner.h
  189. Parser.o    : Positions.h
  190. Parser.o    : Errors.h
  191. Parser.o    : Scanner.h
  192. Parser.o    : Positions.h
  193. Parser.o    : Tree.h
  194.  
  195. sources    : Positions.h
  196.  
  197. sources    : Positions.c
  198. Positions.o    : Positions.c Positions.h
  199.  
  200. sources    : Queue.h
  201.  
  202. sources    : Queue.c
  203. Queue.o    : Queue.c Queue.h
  204.  
  205. sources    : Scanner.h
  206. Scanner.h    : Positions.h
  207.  
  208. sources    : Scanner.c
  209. Scanner.o    : Scanner.c Scanner.h
  210. Scanner.o    : Tree.h
  211. Scanner.o    : Positions.h
  212. Scanner.o    : Errors.h
  213.  
  214. sources    : Semantics.h
  215. Semantics.h    : Tree.h
  216.  
  217. sources    : Semantics.c
  218. Semantics.o    : Semantics.c Semantics.h
  219. Semantics.o    : Tree.h
  220. Semantics.o    : Positions.h
  221. Semantics.o    : Tree.h
  222. Semantics.o    : Errors.h
  223.  
  224. sources    : Tree.h
  225. Tree.h    : Positions.h
  226.  
  227. sources    : Tree.c
  228. Tree.o    : Tree.c Tree.h
  229. Tree.o    : Positions.h
  230. Tree.o    : Positions.h
  231. Tree.o    : Errors.h
  232.  
  233. sources    : Tree2.h
  234. Tree2.h    : Tree.h
  235.  
  236. sources    : Tree2.c
  237. Tree2.o    : Tree2.c Tree2.h
  238. Tree2.o    : Positions.h
  239. Tree2.o    : Tree.h
  240.  
  241. sources    : TreeC1.h
  242. TreeC1.h    : Tree.h
  243.  
  244. sources    : TreeC1.c
  245. TreeC1.o    : TreeC1.c TreeC1.h
  246. TreeC1.o    : Tree.h
  247. TreeC1.o    : TreeC2.h
  248. TreeC1.o    : Tree.h
  249.  
  250. sources    : TreeC2.h
  251. TreeC2.h    : Tree.h
  252.  
  253. sources    : TreeC2.c
  254. TreeC2.o    : TreeC2.c TreeC2.h
  255. TreeC2.o    : Tree.h
  256. TreeC2.o    : Tree.h
  257.  
  258. sources    : TreeMod1.h
  259. TreeMod1.h    : Tree.h
  260.  
  261. sources    : TreeMod1.c
  262. TreeMod1.o    : TreeMod1.c TreeMod1.h
  263. TreeMod1.o    : Tree.h
  264. TreeMod1.o    : TreeMod2.h
  265. TreeMod1.o    : Tree.h
  266.  
  267. sources    : TreeMod2.h
  268. TreeMod2.h    : Tree.h
  269.  
  270. sources    : TreeMod2.c
  271. TreeMod2.o    : TreeMod2.c TreeMod2.h
  272. TreeMod2.o    : Tree.h
  273. TreeMod2.o    : Tree.h
  274.  
  275. sources    : cg.c
  276. all    : cg
  277. cg.o    : cg.c
  278. cg.o    : Errors.h
  279. cg.o    : Scanner.h
  280. cg.o    : Parser.h
  281. cg.o    : Tree.h
  282. cg.o    : Tree2.h
  283. cg.o    : Semantics.h
  284. cg.o    : Order.h
  285. cg.o    : Dialog.h
  286. cg.o    : GramMod.h
  287. cg.o    : TreeMod1.h
  288. cg.o    : EvalMod.h
  289. cg.o    : EvalMod2.h
  290. cg.o    : EvalMod3.h
  291. cg.o    : GramC.h
  292. cg.o    : GramYacc.h
  293. cg.o    : TreeC1.h
  294. cg.o    : EvalC.h
  295. cg.o    : EvalC2.h
  296. cg.o    : EvalC3.h
  297.  
  298. SYSTEM_.o    : SYSTEM_.c SYSTEM_.h
  299.  
  300. cg    : $(SYSTEM)    \
  301.     cg.o    \
  302.     EvalC3.o    \
  303.     Tree.o    \
  304.     Errors.o    \
  305.     Positions.o    \
  306.     EvalC.o    \
  307.     TreeC2.o    \
  308.     TreeC1.o    \
  309.     EvalC2.o    \
  310.     GramYacc.o    \
  311.     GramC.o    \
  312.     EvalMod3.o    \
  313.     EvalMod.o    \
  314.     TreeMod2.o    \
  315.     TreeMod1.o    \
  316.     EvalMod2.o    \
  317.     GramMod.o    \
  318.     Dialog.o    \
  319.     Order.o    \
  320.     Queue.o    \
  321.     Optimize.o    \
  322.     Semantics.o    \
  323.     Tree2.o    \
  324.     Parser.o    \
  325.     Scanner.o    \
  326. ;    $(CC) $(CFLAGS) -o cg $(SYSTEM)    \
  327.     cg.o    \
  328.     EvalC3.o    \
  329.     Tree.o    \
  330.     Errors.o    \
  331.     Positions.o    \
  332.     EvalC.o    \
  333.     TreeC2.o    \
  334.     TreeC1.o    \
  335.     EvalC2.o    \
  336.     GramYacc.o    \
  337.     GramC.o    \
  338.     EvalMod3.o    \
  339.     EvalMod.o    \
  340.     TreeMod2.o    \
  341.     TreeMod1.o    \
  342.     EvalMod2.o    \
  343.     GramMod.o    \
  344.     Dialog.o    \
  345.     Order.o    \
  346.     Queue.o    \
  347.     Optimize.o    \
  348.     Semantics.o    \
  349.     Tree2.o    \
  350.     Parser.o    \
  351.     Scanner.o    \
  352.     $(CLIBS)
  353.  
  354. # TAIL
  355.  
  356. clean    :
  357.     rm -f core *.o
  358.  
  359. .SUFFIXES: .md .mi .h .c .o
  360.  
  361. .mi.c:
  362.     mtc $(M2FLAGS) $*.mi;
  363.  
  364. .md.h:
  365.     mtc $(M2FLAGS) $*.md;
  366.  
  367. .c.o:
  368.     $(CC) $(CFLAGS) -c $*.c
  369.